from pyspark.context import SparkContext

sc = SparkContext()

# 读取HDFS数据时
# 默认一个block对应一个分区
# minPartitions: 控制RDD最小分区数,RDD最终分区数确定,需要保证每个分区的数据量时均衡的
lines_rdd = sc.textFile("../../data/words", 70)

print(f"lines_rdd分区数:{lines_rdd.getNumPartitions()}")

# (repartition)产生shuffle方式,可以增加分区数,也可以减少分区数
# 不产生shuffle方式,只能用于减少分区数
repartition_rdd = lines_rdd.coalesce(numPartitions=2, shuffle=False)

print(f"repartition_rdd分区数:{repartition_rdd.getNumPartitions()}")

repartition_rdd.saveAsTextFile("../../data/coalesce")

while True:
    pass